package com.guodi.map.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.guodi.common.utils.PageData;
import com.guodi.map.entity.MapFunctionDir;
import com.guodi.map.entity.MapLayer;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @描述：地图功能模块目录/图层表 Mapper 接口
 * @作者: 代鹏刚
 * @日期: 2019-12-13
 */
public interface MapFunctionDirMapper extends BaseMapper<MapFunctionDir> {


    /**
     * @描述: 查询目录及其所有父节点，从父节点到当前目录的顺序进行排序
     * @入参: id 功能参数id
     * @出参:
     * @作者: 陈宏成
     * @日期: 2021-03-16
     **/
    List<MapFunctionDir> listParentById(String id);


    /**
    * @描述: 根据功能id、用户id查询功能授权图层树
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2019/12/13 17:33
    **/
    List<MapFunctionDir> listTreeByFunctionIdAndUserId(PageData pd);

    /**
     * @描述: 根据功能id、上级目录ID查询GIS运维-->系统功能-->功能参数，授权图层树实现懒加载
     * @入参: mapFunctionDir
     * @出参: List<MapFunctionDir>
     * @作者: 李贤帆
     * @日期: 2021/5/27 14:33
     */
    List<MapFunctionDir> getListTreeByFunctionIdAndUserId(@Param("mapFunctionDir") MapFunctionDir mapFunctionDir);

    /**
    * @描述: 根据ID删除功能模块图层
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2020/1/7 12:16
    **/
    List<MapFunctionDir> deleteByIds(@Param("ids") String[] ids);

    /**
    * @描述: 验证当前目录下是否存在同名的图层
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2020/1/9 16:15
    **/
    List<MapFunctionDir> verifyByName(@Param("name") String[] name, @Param("parentId") String parentId);

    /**
    * @描述: 根据用户查询功能服务树
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2020/4/16 14:31
    **/
    List<MapFunctionDir> getFunctionDirByRoleId(@Param("functionCode")String functionCode, @Param("roleIds")List<String> roleIds);

    /**
     * 同步图层名
     * @param layers
     */
    Boolean syncLayerNameByLayerId(@Param("layers") List<MapLayer> layers);
}
